HTTP/3 试水
I
小看一眼,发现全是编译啥的。应该会踩很多坑的,这次用国外没东西的小 1h512M 服务器试水一下。 目前 cloudflare 给出了一键开启 http3。很好用,我在 netlify 托管的网页一键开开了。
II
现在要编译安装一个 nginx,用的是 https://github.com/cloudflare/quiche 方案。 https://github.com/cloudflare/quiche/tree/master/nginx 处理 nginx 的教程在这里,一步步跟上
curl -O https://nginx.org/download/nginx-1.16.1.tar.gz
tar xzvf nginx-1.16.1.tar.gz
git clone --recursive https://github.com/cloudflare/quiche
cd nginx-1.16.1
patch -p01 < ../quiche/nginx/nginx-1.16.patch
2
3
4
5
在之前要 apt upgrade 一下避免有装不上的东西 外网服务器下的就是快😎 要编译了发现 cmake 没有 装个 cmake 先 apt install cmake
gcc g++ 也没有 装个
接下来
./configure \
--prefix=$PWD \
--build="quiche-$(git --git-dir=../quiche/.git rev-parse --short HEAD)" \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_v3_module \
--with-openssl=../quiche/quiche/deps/boringssl \
--with-quiche=../quiche
make
2
3
4
5
6
7
8
9
nginx configure 时候报错, the HTTP rewrite module requires the PCRE library.
搜了 装这个 apt install libpcre3 libpcre3-dev
the HTTP gzip module requires the zlib library
搜了 装这个 apt install zlib1g-dev
又 error 没有 cargo 装个 apt install cargo
make 好了
nginx -V
装是装好了 好像要一个 https 证书啊 acme 签一个 https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E
events {
worker_connections 1024;
}
http {
server {
# Enable QUIC and HTTP/3.
listen 443 quic reuseport;
# Enable HTTP/2 (optional).
listen 443 ssl http2;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
# Enable all TLS versions (TLSv1.3 is required for QUIC).
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
# Add Alt-Svc header to negotiate HTTP/3.
add_header alt-svc 'h3=":443"; ma=86400';
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
签证书签了半天 签好了 放在
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
2
里面 配置好 nginx 注意网站不要在 root 下 在 root 下 nginx 访问不到直接 403 了 建一个 /www/wwwroot/domin
文件夹放东西
III
最后配置结果是这样滴
第一个
https://geekflare.com/tools/test/yn22t29e04y7v0u5jl61mcark2dwxmbn 这个网站会检测什么 h3-xxx 的版本协议 (看不懂,看懂了在写一篇 你没有这个版本号的协议这个网站就检测不出来好像 在这里改就行 add_header alt-svc 'h3=":443"; ma=86400';
我加了版本号 114514🤓 add_header alt-svc h3=":443"; ma=86400; h3-114514=":443"; ma=86400
上面这个好像就检测这个 alt-svc 这个头
第二个
https://http3check.net/?host=http3.typescriptactions.xyz 这个就很正常了 不加版本直接检测 h3 的
第三个
然后是 wappalyzer 插件
第四个
然后是浏览器 devtools 的协议检查
IV
总结一下 2023-1-11 21:57:32 开始的 2023-1-12 00:53:12 写完这篇 🤥感觉没啥可总结的 国外服务器也测不了 http3 优势啥的 下班!睡觉!😝